using System.IO;
using System.Reflection;
using GrapeCity.Documents.Excel;
using System;
using System.Data;

namespace GrapeCity.Documents.Excel.Examples.Templates.Pagination.CountPerPagePagination.PageNumberCollection.PageNumber2
{
    class Program
    {
        static void Main(string[] args)
        {
			//create a new workbook
			var workbook = new GrapeCity.Documents.Excel.Workbook();
			
			// Load template file from resource
			var templateFile = GetResourceStream("xlsx\\Template_PageNumber.xlsx");
			workbook.Open(templateFile);
			
			#region Init Data
			DataTable data = new DataTable();
			data.Columns.Add("Customer", typeof(string));
			data.Columns.Add("CustomerCode", typeof(string));
			data.Columns.Add("Product", typeof(string));
			data.Columns.Add("Quantity", typeof(int));
			data.Columns.Add("Price", typeof(int));
			
			data.Rows.Add("情報システム(株)", "C-001", "カーボン用紙", 1, 500);
			data.Rows.Add("情報システム(株)", "C-001", "給与封筒", 1500, 450);
			data.Rows.Add("情報システム(株)", "C-001", "表示用シール（赤）", 10, 250);
			data.Rows.Add("情報システム(株)", "C-001", "表示用シール（青）", 5, 250);
			data.Rows.Add("情報システム(株)", "C-001", "表示用シール（黄）", 5, 250);
			data.Rows.Add("情報システム(株)", "C-001", "ビデオラベル（背見出し）", 2, 500);
			data.Rows.Add("情報システム(株)", "C-001", "ビデオラベル（正面用）", 2, 500);
			data.Rows.Add("情報システム(株)", "C-001", "プリンタ用トナー", 10, 9000);
			data.Rows.Add("情報システム(株)", "C-001", "住所ラベル", 15000, 500);
			data.Rows.Add("情報システム(株)", "C-001", "ワープロリボン（黒）", 10, 1000);
			data.Rows.Add("情報システム(株)", "C-001", "ワープロリボン（赤）", 10, 1000);
			data.Rows.Add("情報システム(株)", "C-001", "A4ファイル", 50, 90);
			data.Rows.Add("情報システム(株)", "C-001", "B4ファイル", 30, 90);
			data.Rows.Add("情報システム(株)", "C-001", "消しゴム", 20, 50);
			data.Rows.Add("旭上株式会社", "C-002", "ボールペン (赤)", 50, 100);
			data.Rows.Add("旭上株式会社", "C-002", "ボールペン (青)", 100, 100);
			data.Rows.Add("旭上株式会社", "C-002", "付箋紙（小）", 20, 120);
			data.Rows.Add("旭上株式会社", "C-002", "付箋紙（大）", 15, 200);
			data.Rows.Add("旭上株式会社", "C-002", "A4コピー用紙", 50, 300);
			data.Rows.Add("旭上株式会社", "C-002", "B4コピー用紙", 20, 500);
			data.Rows.Add("旭上株式会社", "C-002", "A4ファイル", 5, 90);
			data.Rows.Add("旭上株式会社", "C-002", "B4ファイル", 5, 90);
			data.Rows.Add("旭上株式会社", "C-002", "クリアケース", 10, 200);
			data.Rows.Add("旭上株式会社", "C-002", "クリップ", 30, 50);
			data.Rows.Add("旭上株式会社", "C-002", "インク (黒)", 1, 800);
			data.Rows.Add("旭上株式会社", "C-002", "インク (赤)", 1, 800);
			#endregion
			
			// Set PaginationMode is true.
			workbook.Names.Add("TemplateOptions.PaginationMode", "true");
			
			// Add data source
			workbook.AddDataSource("ds", data);
			// Invoke to process the template
			workbook.ProcessTemplate();
			        
			// Save to an excel file
			workbook.Save("PageNumber2.xlsx");

        }

		static Stream GetResourceStream(string resourcePath)
        {
            string resource = "PageNumber2.Resource." + resourcePath.Replace("\\", ".");
            var assembly = typeof(Program).GetTypeInfo().Assembly;
            return assembly.GetManifestResourceStream(resource);
        }

    }
}